Frame traffic balancing across trunk groups

ABSTRACT

Embodiments of methods, apparatuses and/or systems for balancing flow across trunk groups are disclosed. For example, a method of routing a flow of frames may include receiving at least one frame; selecting an exit port of a switch for the at least one frame to exit based, at least in part, on balancing flow across trunk groups; and transmitting the at least one frame.

CROSS REFERENCE TO RELATED APPLICATIONS

This patent application is related to concurrently filed patentapplications, “Logical Ports in Trunking,” by ______, filed on ______,U.S. patent application Ser. No. ______, (attorney docket 003.P004); and““Frame Traffic Balancing in Core-Edge Configurations,” by ______, filedon ______, U.S. patent application Ser. No. ______, (attorney docket003.P003), both of the foregoing assigned to the assignee of thepresently claimed subject matter and herein incorporated by reference.

BACKGROUND

1. Field

This application relates generally to networking and, more particularly,to routing data traffic within a communications networking system.

2. Background Information

As used herein, the term “Fibre Channel” refers to the Fibre Channelfamily of standards (hereinafter referred to as “Fibre Channel”)developed by the American National Standards Institute (ANSI). Ingeneral, Fibre Channel defines a transmission media based at least inpart on high speed communications interfacing for the transfer of largeamounts of data via communicatively coupled devices, including, forexample, such devices as personal computers, workstations, servers,mainframes, supercomputers, and storage devices. Use of Fibre Channel,the Fibre Channel protocol, or the Fibre Channel standard, all of theforegoing used interchangeably throughout this specification, isproliferating in a variety of applications, including, for example,client/server applications which may, for example, employ high bandwidthand/or low latency input/output techniques. Examples of suchapplications include mass storage, medical and scientific imaging,multi-media communications, transactions processing, distributedcomputing and distributed database processing applications, just to namea few.

Although the claimed subject matter is not limited in scope to systemsthat are compliant with the Fibre Channel set of standards, it providesa helpful reference point with respect to network data communications.For systems that are Fibre Channel compliant, for example,communications between devices is typically facilitated over a switchfabric. The switch fabric is typically constructed from one or moreFibre Channel compliant switches or other devices. In one suchstructure, each device may be coupled to the fabric. Thus, devicescoupled to the fabric are capable of communicating with the otherdevices coupled to the fabric, although, of course, this is merely anillustrative example and the claimed subject matter is not limited inscope to such an example.

However, one disadvantage of Fibre Channel compliant protocol devices isthat frame traffic between a source device and a destination device areto be delivered “in-order” as part of being Fibre Channel compliant.Unfortunately, however, in a variety of circumstances, “in-order”delivery may result in frame routing techniques that result in increasedcongestion and/or delay over what might occur if “in-order” delivery offrames or packets were not accommodated.

To provide an example, certain traffic patterns in a fabric may resultin active routes being allocated to particular or selected availablepaths thereby creating a high probability of congestion. It would bemore desirable, instead, if, for example, frame traffic could be atleast roughly evenly distributed across available paths; however, toresult in “in-order” delivery, frequently, frame traffic is allocated toa single available path or to a subset of the available paths. A needtherefore exists to reduce frame traffic congestion and/or to providegreater balance of frame traffic across a variety of available pathswhile maintaining “in-order” delivery of frames.

BRIEF DESCRIPTION OF DRAWINGS

The claimed subject matter may best be understood by referring to thefollowing detailed description when read with reference to theaccompanying drawings in which:

FIG. 1 is a schematic diagram illustrating an embodiment of acommunications network system including a switch fabric.

FIG. 2 is a block diagram illustrating an embodiment is a switch, suchas a Fibre Channel compliant switch.

FIG. 3 is schematic diagram illustrating one embodiment of trunking.

FIG. 4 is a schematic diagram illustrating another embodiment oftrunking.

FIG. 5 is a schematic diagram illustrating one embodiment of a core-edgeswitch configuration.

DETAILED DESCRIPTION

Embodiments of systems, apparatuses, devices and/or methods for datacommunications networking are described. In the following description,numerous specific details are set forth. However, it is understood thatthe described embodiments may be practiced without these specificdetails. In other instances, well-known circuits, structures and/ortechniques have not been shown in detail so as not to unnecessarilyobscure the provided description.

Reference throughout this specification to “one embodiment” and/or “anembodiment” means that a particular feature, structure, and/orcharacteristic described may be included in at least one embodiment.Thus, the appearance of the phrases “in one embodiment” or “in anembodiment” in various places throughout this specification typicallydoes not refer to one particular embodiment or necessarily to the sameembodiment. Furthermore, various features, structures, and/orcharacteristics described through out this specification may be combinedin any suitable manner in one or more embodiments.

Embodiments of the claimed subject matter are well suited to a varietyof networking applications and/or systems, such as computer networksystems, employing a variety of different topologies, including, forexample, storage area networking (SAN), although, of course, the claimedsubject matter is not limited in scope in this respect. In such anembodiment, although the claimed subject matter is not limited in scopein this respect, a configuration may be employed in which management isaccomplished of large networks comprised of storage devices, computers,other computing platforms, and/or the like, that are communicativelycoupled to dissimilar storage devices, computers, other computingplatforms, and/or the like. Typically, this may be accomplished over aFibre Channel compliant topology, although, again, the claimed subjectmatter is not limited in scope to employing Fibre Channel compliantprotocols and/or devices that are Fibre Channel compliant necessarily.

Reference will now be made in detail to several embodiments of theclaimed subject matter, samples of which are illustrated in theaccompanying drawings. When practicable, the same or similar referencenumerals will be used throughout the drawings to refer to the same orsimilar components, parts, or other objects.

FIG. 1 is a schematic diagram of an embodiment of a Fibre Channelcompliant communications network system 100. Again, Fibre Channelprotocols are merely used as a reference point and the claimed subjectmatter is not limited in scope to an embodiment employing Fibre Channel.In this embodiment, these devices are included in a storage area network(SAN). Likewise, example nodes include hosts and target devices, such asRAID units, JBOD units and tape libraries. Again, these examples aremerely provided for purposes of illustration and the claimed subjectmatter is not limited in scope to these example embodiments.

However, embodiment 100 further comprises a switch fabric 110 and aplurality of devices, such as 120, 122, 124, and/or groups of devices,such as 134, 136, and 138, as indicated with respect to logical loop130, for example. In general, a switch fabric, such as fabric 110, maybe communicatively coupled to various devices, such as, here, 120, 122,and 124, and may operate as a switching network to allow these devicesto communicate with each other. Devices 120, 122, and 124 may compriseany type of device, such as, for example, a computing platform, astorage device, and/or the like, and are typically communicativelycoupled via fabric 110 by employing point-to-point communicationstechnology or techniques. In this particular embodiment fabric 110 isalso in communication with logical loop 130. Loop 130 here includesdevices 134, 136 and 138. In this particular embodiment, loop 130comprises an arbitrated loop with ring couplings for providing multiplenodes with the ability to arbitrate access to shared bandwidth. It is,of course, appreciated that this particular embodiment is merely anillustrative example and the claimed subject matter is not limited inscope in any way to this particular embodiment.

In this particular embodiment, fabric 110 comprises a variety ofcommunicatively coupled Fibre Channel compliant switches. Although inthis particular embodiment, Fibre Channel compliant switches areemployed, references throughout this specification to “a switch” or to“switches” is intended to refer to a generic switch rather than to aFibre Channel compliant switch or to switches that only comply withFibre Channel protocols. In this context, then, the term switch refersto a device that includes a processor and memory and that is adapted toor has the capability to route frames or packets between two or moreseparate devices.

It is likewise noted that such switches typically include a variety ofports. For switches that comply with the Fibre Channel protocol orstandard, the switch ports may include one or more E-ports, FL-portsand/or F-ports, although the claimed subject matter is not limited inscope in this respect. Furthermore, in general, switches that routeframes through a network may employ source identifiers and destinationidentifiers, typically such identifiers being included as part of theframes being routed, to assist in making routing decisions. Typically,such switches also include routing tables that are contained within theswitch, in hardware, firmware, and/or software form, or any combinationthereof, depending upon the particular embodiment, and are employed toroute frames throughout the network, as described in more detailhereinafter.

Although the claimed subject matter is not limited in scope to thisembodiment, FIG. 2 illustrates an embodiment of a switch in accordancewith the claimed subject matter. Embodiment 200 includes a controlprocessor 290, an ASIC 295, a PHY 285, a media interface (I/F) 280, aserial interface 275, a RAM, 270 and flash memory 265, as well as othercomponents. In this embodiment of a switch, the ASIC includes a controlsubsystem 210, a frame data storage system 220, port groupings 230, andan overall system interface 240. It is noted that FIG. 2 simplyillustrates a potential architecture of a switch in accordance with theclaimed subject matter. This architecture is provided only as an exampleand many other switch architectures are possible. The claimed subjectmatter is not limited to this or to any other particular architecture.This particular architecture offers versatility in some respects and maybe employed in a variety of system configurations including a switchfabric configuration and/or a core-edge switch configuration, forexample; however, it is to be understood the following description andthe claimed subject matter is not at all dependent upon this particularor any other particular switch architecture.

As previously described, one aspect of communications data networking,such as for Fibre Channel compliant systems, may include the delivery offrames “in order.” As also previously described, this may result inissues, such as congestion and/or underutilization of available pathsthrough the network. One approach to addressing these issues isdescribed in detail in co-pending patent applications, U.S. patentapplication Ser. No. 09/872,412, titled “Link Trunking and MeasuringLink Latency In Fibre Channel Fabric,” filed on Jun. 1, 2001, by DavidC. Banks, Kreg A. Martin, Shunjia Yu, Jieming Zhu and Kevan K. Kwong;and U.S. patent application Ser. No. 10/059,760, titled “Dynamic PathSelection with In-Order Delivery within Sequence,” filed on Jan. 29,2002, by Ezio Valdevit, U.S. Publication No U.S. 2002/0156918 A1; bothof the foregoing assigned to the assignee of the presently claimedsubject matter and hereby incorporated by reference.

Although the claimed subject matter is not limited in scope to employingthe approach described in the foregoing patent applications, theseapplications describe a technique referred to here as trunking oremploying a trunked group of links, which may allow frames to take avariety of alternate paths and still be delivered “in-order” at thedesired destination. Although, again, the claimed subject matter is notlimited in scope in this respect, as described in the foregoing patentapplications, trunking may be performed over eight “links” such asdepicted in FIG. 3, for example. It is noted that in the foregoingpatent applications, trunking is performed, instead, using four links,such as illustrated, for example, in FIG. 4; however, as will beappreciated, the claimed subject matter is not limited to employing aparticular number of links in a trunked group. The reference numerals inFIG. 4 correspond to those in FIG. 3 of like form. For example, switches402 and 404, trunked group 400, and ports 406-422 correspond to switches302 and 304, trunked group 300 and ports 306-321. Therefore, any numberof links may be employed depending upon the particular embodiment, suchas either four links or eight links.

Thus, FIG. 3 depicts a block diagram illustrating an embodiment ofadjacent switches in which trunking is employed. In this particularembodiment, switches 302 and 304 are coupled together by a set of links,also referred to as inter-switch links or ISLs. In this embodiment, thelinks (and associated ports) comprise a trunked group 300. Thus, in thisparticular embodiment, frames are distributed across a set of alternatepaths or ISLs, linking adjacent switches 302 and 304. It is noted thatbuffering is not necessarily employed in the path between the switchesto perform balancing of the frame traffic.

The particular implementation details of trunking as described in theforegoing patent applications shall not be discussed here to conservespace and to avoid unnecessary repetition; however, in general, asdescribed in the foregoing patent applications, trunking treats a groupof ISLs as a logical pipe. By doing so, frames received at one switchmay be transmitted to an adjacent switch, for this particularembodiment, after being roughly at least evenly disbursed over the ISLswithin the trunked group so that congestion over a particular ISL may bereduced and/or underutilization of a particular ISL may also be reduced.Trunking, thus, is beneficial, for example, as just described, at leastin part because it enables frame traffic to be at least roughly evenlydistributed across available ISLs while preserving in-order delivery.For this particular embodiment, ports 306-322 that belong to the trunkedgroup 300 are referred to as trunking ports.

Likewise, switches 302 and 304 may include a central processing unit(CPU) or other module, integrated therein. These modules typicallyinclude a processor, such as, for example, a microprocessor, with alocal memory module, such as, for example, cache memory. In thisparticular embodiment, a processor, such as 330 or 331, and memory, suchas 334 or 335, may generally be employed for the initialization of theswitch, although, of course, the claimed subject matter is not limitedin scope in this respect. Additional components or constructs mayinclude virtual channels and/or queues, for queuing up frames to betransmitted from the switch, timers, additional memory registers,logical routing tables, etc. Although the claimed subject matter is notlimited in scope in this respect, these additional components may beembodied within an ASIC, such as 340 or 341, embedded within therespective switches, such as, for example, 302 and 304. Of course,again, this is merely one example embodiment.

Nonetheless, as described in the foregoing applications, trunkingbetween ports of two switches, for example, as depicted in FIG. 3, forexample, is typically accomplished by utilizing specifically identifiedphysical ports on the switches. In some situations, however, limitingtrunking to specifically identified physical ports may reduce theflexibility of the switch configuration. For example, it may bedesirable to trunk different ports together as a trunked group,depending upon the particular switch configuration being employed.Greater flexibility, therefore, may be possible by performing trunkingusing logical ports rather than physical ports, as described in moredetail hereinafter. Furthermore, although the claimed subject matter isnot limited in scope in this respect, employing logical ports may alsoprovide better frame traffic balancing and/or better switch utilization.

In one particular embodiment, therefore, instead of employing dedicatedphysical ports of a switch to perform trunking and routing of a flow of“in order” frames via dedicated physical switch ports, alternately, acorrespondence may be employed between logical ports and physical portsof a switch. In this context, the term “logical port” refers to a portof a switch that comprises a collection of one or more physical ports,regardless of the location of the physical port on the switch.Typically, although not necessarily, such a correspondence betweenlogical ports and physical ports may be stored in tables on a givenswitch, in hardware, firmware, and/or software, or any combinationthereof, depending upon the particular embodiment.

In such an embodiment, balancing of frame traffic through the switchemploying the trunking techniques described in the foregoing patentapplications, for example, may be employed, although again the claimedsubject matter is not limited in scope this respect. In this context,frame traffic includes frames exiting a particular switch via thephysical ports of the switch. In this particular embodiment, however,the selected physical port for a frame exiting the switch may beselected based in least in part on the previously describedcorrespondence between logical ports and physical ports. For example,balancing frame traffic over a set of links may be accomplished byemploying trunking. However, in this instance, the links may couplelogical ports between adjacent switches, for example, rather thanphysical ports between switches. Likewise, logical ports may comprisemore than one physical port distributed over the switch, depending onthe particular embodiment. For example, one logical port may correspondto one or more physical ports in this particular embodiment. However, ingeneral, any and all potential correspondences between physical portsand logical ports, regardless of arrangement, are included within thescope of the claimed subject matter. In the embodiment described aboveand shown in FIG. 3, eight such links were employed to comprise atrunked group, although the claimed subject matter is not limited inscope in this respect.

However, regardless of the number of links employed, in an embodimentsuch as this particular embodiment, balancing frame traffic via thelinks may be accomplished by applying a pseudo-random process to selecta particular port as an egress port. Thus, here, a particular port maybe selected from among available logical ports, here, the particularport being selected for a particular frame of the frames exiting theswitch. For example, although, again, the claimed subject matter is notlimited in scope in this-respect, a pseudo-random process may compriseapplying a hash function to a set of parameters. Of course, anypseudo-random process may be employed and such an embodiment will remainwithin the scope of the claimed subject matter.

Although the scope of the claimed subject matter is not limited in scopein this respect, as one example, a destination identifier (DID), sourceidentifier (SID) and exchange identifier (OXID) may be employed as hashfunction parameters. Additionally, an identifier for a receiving switch(RXID), and a receiving port (RXPORT) may be employed in someembodiments. Of course, additional parameters or different parametersmay also be employed.

In this particular embodiment, however, once the pseudo-random processis employed to select from the available logical ports, such as byapplying a hash function, for example, the previously describedcorrespondence may then be employed to determine the physical port towhich to route the particular frame based at least in part on thelogical port selected as the particular port. Thus, applying apseudo-random process, such as, for example, a hash function, balancestraffic across logical ports in a switch in this embodiment.Nonetheless, logical ports may exist in a single switch or, for example,in the case of core-edge architectures, across multiple switches andmultiple chips. A logical port for a given switch, therefore, comprisesa collection of one or more physical ports in this particularembodiment.

It is noted that while, in this particular embodiment, all of the portsemployed to accomplish trunking, as previously described, may compriselogical ports, the claimed subject matter is not limited in scope inthis respect. For example, in an alternative embodiment, a mixture oflogical ports and physical ports may be employed by the switch to form atrunked group. In such an embodiment, then, some frames may be routeddirectly to a selected physical port based at least in part onapplication of a pseudo-random process (that is, without employing alogical port), while, for other frames, a logical port may be selectedbased at least in part on application of a pseudo-random process, andthen, a correspondence between logical ports and physical ports may beemployed to route the frame to the associated physical port. Of course,this is merely an example of an alternative approach.

In another alternative embodiment, when a frame is received by a switch,the switch may add tags or other identifying information to the frame.For example, in one embodiment, a source tag, destination tag, and/orother identifying information may be added (e.g., STAG and/or DTAG, notto be confused with SID and DID). These tags and/or other identifyinginformation may then be employed to route the frame to a particularswitch egress port based at least in part on routing tables contained inthe switch. A variety of schemes to accomplish this are possible and theclaimed subject matter is, of course, not limited to a particularrouting table scheme. For example, one or more of the tags orsubportions of the tags may be employed to perform table lookups forparticular switch routing tables. Then, these tags and/or otheridentifying information may be stripped off the frames as they exit theswitch. One advantage of such an approach is that it may provideflexibility in routing frames in multi-fabric environments, where, forexample, DIDs and/or other frame identifiers may not be unique. Thus,such tags and/or other identifying information may label frames asbelonging to a particular fabric, for example. Likewise, the tags may beassigned to be associated with switch logical ports so that logicalswitch port trunking, as previously described may be employed.

For example, in one embodiment, a hash function or other pseudo-randomprocess, using as parameters, DID, SID, OXID, RXID, RXPORT, STAG and/orDTAG, or any combination thereof, may be employed to perform trunkedrouting. For example, if

-   -   Hvalue=HASH (parameters)        returns a pseudo-random value. In one potential embodiment,        where N provides the number of alternative paths, S provides an        offset for the index of a routing table, and I provides the        routing table index, then the following may be employed in one        embodiment:    -   I=S+(Hvalue modulo N)    -   selected port=Entry [I]        -   where Entry [*] returns the value of the routing table at            location I.

Of course as previously suggested, the claimed subject matter is alsonot limited in scope to employing trunking. In an alternativeembodiment, for example, a technique for balancing frame traffic in anetwork that includes communication paths having different bandwidthsmay be employed. One such technique is described in co-pending U.S.patent application Ser. No. 10/208, 969, titled “Load Balancing in aNetwork Comprising Communication Paths Having Different Bandwiths,”filed on Jul. 31, 2002, by Ezio Valdevit and Vineet Abraham, assigned tothe assignee of the presently claimed subject matter and hereinincorporated by reference However, the claimed subject matter is notlimited in scope to the approach employed in the foregoing patentapplication, of course.

In such an approach, nonetheless, a cost value or weight may be assignedto links in a network based on a variety of potential criteria. Thetotal cost of employing particular paths of the network between switchesmay then be computed based at least in part on the assigned weights andframe traffic may be balanced among a variety of paths to produce alower cost path from among the alternative paths. The implementationdetails of the foregoing patent shall not be discussed here to conservespace and to avoid unnecessary repetition; however, for an embodiment ofthe presently claimed subject matter, balancing of frame traffic mayalso be accomplished by applying weights, rather than, for example,employing a pseudo-random process. For example, a particular port may beselected from among available logical ports of the switch, although inthis particular embodiment, weights may be employed, rather than apseudo-random process, to determine a path for the particular frame.Once a logical port is selected, however, the previously describedcorrespondence may be employed to determine the physical port to whichto route the particular frame based at least in part on the selectedlogical port. Likewise, as previously described, such a technique may beapplied by mixing logical ports and physical ports. In such anembodiment, then, some frames may be routed directly to a selectedphysical port based at least in part on application of the previouslydescribed process (that is, without employing a logical port), while,for other frames, a logical port may be selected, and then, acorrespondence between logical ports and physical ports may be employedto route the frame to the associated physical port.

Referring again to trunking, as previously described, frame traffic maybe balanced over a set of links referred to as a trunked group.Likewise, as previously indicated, the claimed subject matter is notlimited in scope to the number of links or exit ports employed in oneparticular group. However, even for those embodiments in which trunkedgroups take on a variety of sizes, it may be desirable to have thecapability to balance frame traffic across or between at least twotrunked groups, regardless of the size of the particular trunked groupsthemselves.

A process may, therefore, in this particular embodiment, be applied toselect an exit port of a switch from a set of possible exit ports. Aparticular frame from a flow of frames, thus, may exit a selected exitport so as to potentially reduce frame traffic congestion alongpotential routes that include the set of possible exit ports. Inaddition, the set of possible exit ports may include at least some ofthe exit ports of at least two trunked groups. Again, such an embodimentmay be employed irrespective of the size of the trunked groupsthemselves, which may comprise, for example four links or exit ports,eight links or exit ports, or varying numbers of links or exit ports,although, again, the claimed subject matter is not limited in scope tothe number of exit ports or links comprising a particular trunked group.

In one embodiment, a process may comprise applying a pseudo-randomprocess, such as, in one particular embodiment, applying a hashfunction, although the claimed subject matter is not limited in scope toapplying hash function, of course. The hash function, nonetheless, maybe applied, at least for some frames, to a set of parameters. In oneembodiment, the set of parameters may reflect information about theframes to which the hash function is applied, in order to select an exitport from the set of possible exit ports, for example, as previouslydescribed.

However, rather than employing a pseudo-random process to select an exitport, in an alternative embodiment, weights may be employed, similar,for example, to an embodiment discussed above. For example, a weight mayrespectively be assigned to at least some of respective ones of exitports from a set of possible exit ports through which a frame may exit.In such an embodiment, a process may be applied to select an exit portof the switch so as to potentially reduce frame traffic congestion alongpotential routes that include a set of possible exit ports. In thisembodiment, the process may comprise, for example, employing the weightsto select an exit port so that the overall cost, based, at least inpart, on the weights applied, is as good as or better than alternativeexit ports in terms of achieving an objective function that may bereflected by the weights. For example, although the claimed subjectmatter is not limited in scope in this respect, the weights may, atleast in part, reflect consumed bandwidth associated with having framestravel particular routes of the network that include the particularswitch.

Nonetheless, it shall be appreciated that this particular embodiment isnot limited in scope to an objective function in which “better” isnecessarily defined by obtaining a higher value. For example, in thiscontext, “better” with respect to a particular objective function maycomprise achieving a lower value objective, depending, for example, onwhether the weights employed are positive or negative. Furthermore, atleast some exit ports may have multiple weights to reflect routesbetween the particular exit port and a variety of potential destinationports in the particular network. In such an embodiment, therefore,multiple weights may be employed to select an exit port that is as goodas or better than alternative exit ports in terms of achieving anobjective function reflected by the multiple weights. Again, achievingthe objective function may comprise obtaining a higher value or lowervalue, depending upon the particular embodiment. Likewise, at least someof the potential routes may be to one or more other switches in a switchfabric or to one or more other switches in a particular network,although, of course, the subject matter is not limited in scope in thisrespect.

As previously suggested, one embodiment of a switch in accordance withthe claimed subject matter may be employed in a switch fabric and/or ina core-edge switch configuration, although, of course, the claimedsubject matter is not limited in scope to only a switch fabric and/or acore-edge switch configuration. FIG. 5, thus, is a schematic diagram ofan embodiment demonstrating one potential core-edge switchconfiguration, although many others are possible within the scope of theclaimed subject matter. Thus, an embodiment of a core-edge switchconfiguration or topology, as illustrated in FIG. 5, may provide abuilding block for improvements, such as higher port counts and/ormodular switches. An edge switch or blade, such as 580, for example, mayterminate external Fibre Channel couplings or connections, and coreswitches or modules, such as 570, for example, may switch blade-to-bladetraffic. An edge blade, for example, may provide external Fibre Channelcouplings or connections to attach host and storage host bus adapters(HBAs,) as well as to other switches over E-ports, for example, whereFibre Channel is employed. In addition, the edge blades 580 may provideinternal connections or coupling to the core modules of theconfiguration. Furthermore, in the embodiment shown in FIG. 5, devices590 may provide control via PCI compliant busses, although, of course,the claimed subject matter is not limited in scope to this particulararchitecture, to employing PCI compliant busses, or to the number ofcore and/or edge switches depicted.

A variety of techniques for routing a flow of “in order frames for acore-edge switch configuration are possible. In one particularembodiment, it is desirable to select a route for a frame of the flowthat potentially reduces frame traffic congestion, in comparison withother potential routes. Such an embodiment may include the following.For example, as described in connection with other embodiments, apseudo-random process may be applied. In this particular embodiment, forexample, a hash function may be applied, such as the previouslydescribed hash function, although, of course, other pseudo-randomprocesses and/or other hash functions may also be employed.

In one particular embodiment, a hash function may be applied to a set ofpossible routes to exit ports of a core switch, such as switch 510 of acore-edge switch configuration, to balance the flow of frames out ofexit ports of the core switch. Thus, for such an embodiment, apseudo-random process is applied so as to at least roughly evenlydistribute frames exiting exit ports of the core switch. In analternative embodiment, however, a hash function and/or otherpseudo-random process may be applied to a set of possible routes toexternal exit ports of a core-edge switch configuration to balance theflow of frames out of the external exit ports. In a core-edgeconfiguration, the external exit ports comprise exit ports of the edgechips. Thus, in this particular embodiment, in contrast with thepreviously described embodiment, the flow of frames out of external exitports of the switch-edge configuration is at least roughly evenlybalanced. In this example, as previously indicated, exiting the exitports of the edge switches comprises exiting the core-edge switchconfiguration. In some contexts, this may be referred to as “spraying”and/or “spraying frames.”

Another embodiment of spraying, however, may be employed in a core-edgeswitch configuration from the edge switch that receives the frame in theparticular configuration, here the ingress switch of the configurationfor that frame, to a core switch in the configuration. Thus, dependingupon the number of core-switches in the particular configuration, apseudo-random process may be applied to select a core switch and/or toselect a route to a selected core switch, such as, for example, a hashfunction. In this manner, frames may be sprayed” from ingress switchesto core switches of the configuration. Once the frames arrive, thereceiving core switch may them employ a variety of routing techniques,such as those described, to route the frames to egress switches for theparticular configuration.

In yet another alternative embodiment, a hash function and/or otherpseudo-random process may be applied to possible routes through thecore-edge configuration to balance the flow of frames through theconfiguration to a particular exit port of the configuration. In such anembodiment, as in the previously described embodiment, an external exitport of the core-edge switch configuration comprises an exit port of anedge switch of the core-edge configuration. Thus, in this particularembodiment, a hash function and/or other pseudo-random process isapplied so that possible alternative routes through the configurationare at least roughly evenly balanced, instead of balancing the flow offrames out of the external exit ports of the configuration, asaccomplished in previously described embodiments, for example. These, ofcourse, are merely examples of various techniques within the scope ofthe claimed subject matter that may be applied to balance frame trafficin a core-edge switch configuration.

Likewise, additional embodiments are possible and included within thescope of the claimed subject matter. For example, alternatively, ratherthan applying a pseudo-random process to at least roughly evenly balancethe flow of frames, instead, weights may be employed to balance frametraffic and/or reduce potential congestion in a core-edge switchconfiguration. Likewise, a variety of approaches to applying weights maybe employed. For example, in one embodiment, a weight may respectivelybe assigned to at least some respective one of the exit ports of a coreswitch of a core-edge switch configuration. In such an embodiment, aprocess may be applied to select a route for a frame of a flow of “inorder” frames so as to potentially reduce frame traffic congestion inthe core-edge switch configuration. In such a process, weights may beemployed to select an exit port of the core switch so that the selectedroute is as good as or better than alternate exit ports in terms ofachieving an objective function reflected by the weights. Of course, inthis particular embodiment, “better” in terms of achieving an objectivefunction may comprise either obtaining a higher value objective orobtaining a lower objective function depending, for example, upon theparticular embodiment. Likewise, as previously described, in oneembodiment, although, again, the claimed subject matter is not limitedin scope in this respect, the weights may, at least in part, reflectconsumed bandwidth associated with having frames travel along particularroutes.

In yet another embodiment, some exit ports may have multiple weights toreflect routes from particular exit ports to multiple respectivedestination ports. In such an embodiment, thus, a process may employmultiple weights to select an exit port of the core switch that is asgood as or better than an alternative exit ports in terms of achievingan objective function reflected by the multiple weights. Again, aspreviously described, “better” in terms of achieving an objectivefunction may comprise obtaining a higher value objective function or alower value objective function. Likewise, multiple weights employed mayat least reflect consumed bandwidth associated with having frames travelalong particular routes. Furthermore, in one embodiment, at least someof the potential routes may be to one or more other switches in a switchfabric or to one or more other switches in a particular network,although again the claimed subject matter is not limited in scope inthis respect.

In still another embodiment, weights may be applied to select an exitport of edge switches of the core-edge switch configuration, rather thanto select an exit port of the core switch, as described above. Thus, inthis particular embodiment, multiple weights may reflect routes from theparticular exit port to multiple respective destination ports and beemployed to select an exit port of an edge switch that is as good as orbetter than alternative exit ports of edge switches of the configurationin terms of achieving an objective function reflected by the weights. Inthis particular embodiment, again, an exit port of an edge switchcomprises an exit port the core-edge switch configuration itself.Likewise, again, “better” may comprise obtaining a higher valueobjective function or a lower value objective function depending uponthe particular weights.

In even yet another embodiment, weights may be applied to select a routefrom among possible routes through the core-edge configuration tobalance the flow of frames through the configuration to a particularexit port of the configuration. In such an embodiment, as in thepreviously described embodiment, an external exit port of the core-edgeswitch configuration comprises an exit port of an edge switch of thecore-edge configuration. Thus, in this particular embodiment, theweights may be applied so that possible alternative routes through theconfiguration to a particular exit port are balanced, reflected at leastin part by the weights, instead of balancing the flow of frames out ofthe external exit ports of the configuration, as accomplished inpreviously described embodiments, for example.

In summary, in a core-edge switch configuration, a variety of techniquesto route frames are possible in order to reduce traffic congestionand/or balance flow. One technique may include balancing the flow of aset of external exit ports of the core-edge configuration. Anothertechnique may include balancing the flow to a particular external exitport. Likewise, a further technique may include balancing the flow outof the exit ports of a particular switch, e.g., a core switch, orbalance the flow to a particular exit port. Furthermore, severaltechniques are available to balance flow in the previously describedtechniques, such as applying a pseudo-random process and/or applyingweights. Yet another technique may include a source tag, a destinationtag, and/or other information available about the packets they arereceived by particular switches that may be employed to route thepackets in the configuration.

It will, of course, be understood that, although particular embodimentshave just been described, the claimed subject matter is not limited inscope to a particular embodiment or implementation. For example, oneembodiment may be in hardware, such as implemented to operate on adevice or combination of devices, for example, whereas anotherembodiment may be in software. Likewise, an embodiment may beimplemented in firmware, or as any combination of hardware, software,and/or firmware, for example. For example, software may be employed toinitialize a switch, such as by initializing the correspondence betweenlogical ports and physical ports and/or initialing the switch to havethe capability to balance frame traffic. Likewise, although the claimedsubject matter is not limited in scope in this respect, one embodimentmay comprise one or more articles, such as a storage medium or storagemedia. This storage media, such as, one or more CD-ROMs and/or disks,for example, may have stored thereon instructions, that when executed bya system, such as a computer system, computing platform, or othersystem, for example, may result in an embodiment of a method inaccordance with the claimed subject matter being executed, such as oneof the embodiments previously described, for example. As one potentialexample, a computing platform may include one or more processing unitsor processors, one or more input/output devices, such as a display, akeyboard and/or a mouse, and/or one or more memories, such as staticrandom access memory, dynamic random access memory, flash memory, and/ora hard drive, although, again, the claimed subject matter is not limitedin scope to this example.

In the preceding description, various aspects of the claimed subjectmatter have been described. For purposes of explanation, specificnumbers, systems and configurations were set forth to provide a thoroughunderstanding of the claimed subject matter. However, it should beapparent to one skilled in the art having the benefit of this disclosurethat the claimed subject matter may be practiced without the specificdetails. In other instances, well-known features were omitted orsimplified so as not to obscure the claimed subject matter. Whilecertain features have been illustrated and described herein, manymodifications, substitutions, changes and/or equivalents will now occurto those skilled in the art. It is, therefore, to be understood that theappended claims are intended to cover all such modifications and/orchanges as fall within the true spirit of the claimed subject matter.The description is thus to be regarded as simply illustrative and isintended in no way to limit the scope of the claimed subject matter.

1. A method of routing a flow of frames through a switch comprising:receiving at least one frame from said flow of frames; applying aprocess to select an exit port of said switch from a set of possibleexit ports through which at least one frame from said flow of frameswill exit so as to potentially reduce frame traffic congestion alongpotential routes that include said set of possible exit ports, said setof possible exit ports including at least some of the exit ports of atleast two trunk groups; transmitting said at least one frame.
 2. Themethod of claim 1, wherein said set of possible exit ports includes atleast all of the exit ports of at least two trunk groups.
 3. The methodof claim 1, wherein at least one of said trunk groups comprises fourexit ports.
 4. The method of claim 1, wherein at least one of said trunkgroups comprises eight exit ports.
 5. The method of claim 1, whereinsaid process comprises a pseudo-random process.
 6. The method of claim5, wherein applying said pseudo-random process comprises applying a hashfunction.
 7. The method of claim 6, wherein said hash function isapplied to a set of parameters associated with the frames exiting saidswitch in order to select an exit port from said set of possible exitports.
 8. The method of claim 1, wherein a weight is respectivelyassigned to at least some respective ones of said exit ports; whereinapplying a process to select an exit port of said switch from a set ofpossible exit ports through which a frame from said flow of frames willexit so as to potentially reduce frame traffic congestion alongpotential routes that include said set of possible exit ports comprisesemploying the weights to select an exit port that is as good as orbetter than alternative exit ports in terms of achieving an objectivefunction reflected by said weights.
 9. The method of claim 8, wherein asgood as or better in terms of achieving an objective function comprisesobtaining a higher value objective function.
 10. The method of claim 8,wherein as good as or better in terms of achieving an objective functioncomprises obtaining a lower value objective function.
 11. The method ofclaim 8, wherein said weights at least in part reflect consumedbandwidth for particular routes.
 12. The method of claim 8, wherein atleast some exit ports have multiple weights reflecting routes from theparticular exit port to multiple respective destination ports; whereinapplying a process to select an exit port from a set of possible exitports through which a frame from said flow of frames will exit so as topotentially reduce frame traffic congestion along potential routes thatinclude said set of possible exit ports comprises employing saidmultiple weights to select an exit port that is as good as or betterthan alternative exit ports in terms of achieving an objective reflectedby said weights.
 13. The method of claim 12, wherein as good as orbetter in terms of achieving an objective function comprises obtaining ahigher value objective function.
 14. The method of claim 12, wherein asgood as or better in terms of achieving an objective function comprisesobtaining a lower value objective function.
 15. The method of claim 12,wherein said multiple weights at least in part reflect consumedbandwidth for particular routes.
 16. The method of claim 8, wherein atleast some of said links are to one or more other switches in a switchfabric.
 17. The method of claim 1, wherein at least one of said set ofpossible exit ports is selected based at least in part on a source tagand/or a destination tag added to said frame after said frame enterssaid switch.
 18. The method of claim 17, wherein said source tag and/orsaid destination tag is stripped off said frame before said frame exitssaid switch.
 19. The method of claim 1, wherein at least one of said setof possible exist ports is selected based at least in part on a sourcetag and/or a destination tag added to each of said frames after saidframes enter said switch.
 20. The method of claim 19, wherein saidsource tag and/or said destination tag is stripped off each of saidframes before each of said frames exits said switch.
 21. A switch fabriccomprising: at least a first switch and a second switch; said first andsaid second switch being communicatively coupled; said first switchincluding a processor and a memory, and having the capability to balancea flow of frames exiting said first switch; said first switch beingadapted to select an exit port of said switch from a set of possibleexit ports through which a frame from said flow of frames will exit soas to potentially reduce frame traffic congestion along potential routesthat include said set of possible exit ports, said set of possible exitports including at least some of the exit ports of at least two trunkgroups.
 22. The switch fabric of claim 21, wherein at least one of saidtrunk groups comprises four exit ports.
 23. The switch fabric of claim21, wherein at least one of said trunk groups comprises eight exitports.
 24. The switch fabric of claim 21, wherein said first switch isadapted to select said exit port pseudo-randomly.
 25. The switch fabricof claim 24, wherein first said switch is adapted to select said exitport pseudo-randomly by applying a hash function.
 26. The switch fabricof claim 25, wherein said first switch is adapted to apply said hashfunction to a set of parameters associated with the frames that willexit said first switch.
 27. The switch fabric of claim 21, wherein saidfirst switch is adapted to respectively assign a weight to at least somerespective ones of said exit ports; wherein said first switch is adaptedto employ the weights to select an exit port for a frame of said flow toexit so as to balance said flow of frames exiting said first switch sothat said selected exit port is as good as or better than alternativeexit ports in terms of achieving an objective reflected by said weights.28. The switch fabric of claim 27, wherein as good as or better in termsof achieving an objective function comprises obtaining a higher valueobjective function.
 29. The switch fabric of claim 27, wherein as goodas or better in terms of achieving an objective function comprisesobtaining a lower value objective function.
 30. The switch fabric ofclaim 27, wherein said weights are adapted to at least in part reflectconsumed bandwidth for particular routes.
 31. The switch fabric of claim27, wherein at least some exit ports have multiple weights to reflectroutes from the particular exit port to multiple respective destinationports; wherein said first switch is adapted to employ said multipleweights to select an exit port for a frame of said flow to exit so as tobalance said flow of frames exiting said first switch to select an exitport that is as good as or better than alternative exit ports in termsof achieving an objective reflected by said weights.
 32. The switchfabric of claim 31, wherein said multiple weights are adapted to atleast in part reflect consumed bandwidth for particular routes.
 33. Theswitch fabric of claim 31, wherein as good as or better in terms ofachieving an objective function comprises obtaining a higher valueobjective function.
 34. The switch fabric of claim 31, wherein as goodas or better in terms of achieving an objective function comprisesobtaining a lower value objective function.
 35. The switch fabric ofclaim 27, wherein at least some of said links are to one or more otherswitches in said switch fabric other than said second switch.
 36. Theswitch fabric of claim 21, wherein said first switch is adapted toselect at least one of said set of possible exit ports based at least inpart on a source tag and/or a destination tag added to said frame aftersaid frame enters said switch.
 37. The switch fabric of claim 36,wherein said first switch is adapted to strip said source tag and/orsaid destination tag off said frame before said frame exits said switch.38. The switch fabric of claim 21, wherein said first switch is adaptedto select at least one of said set of possible exit ports based at leastin part on a source tag and/or a destination tag added to each of saidframes after said frames enter said switch.
 39. The switch fabric ofclaim 38, wherein said first switch is adapted to strip said source tagand/or said destination tag off each of said frames before each of saidframes exits said switch.
 40. An apparatus comprising: a switch, saidswitch including a processor and a memory; said switch further havingthe capability to balance a flow of frames exiting said switch; saidswitch being adapted to select an exit port of said switch from a set ofpossible exit ports through which a frame from said flow of frames willexit so as to potentially reduce frame traffic congestion alongpotential routes that include said set of possible exit ports, said setof possible exit ports including at least some of the exit ports of atleast two trunk groups.
 41. The apparatus of claim 40, wherein at leastone of said trunk groups comprises four exit ports.
 42. The apparatus ofclaim 40, wherein at least one of said trunk groups comprises eight exitports.
 43. The apparatus of claim 40, wherein said switch is adapted toselect said exit port pseudo-randomly.
 44. The apparatus of claim 43,wherein said switch is adapted to select said exit port pseudo-randomlyby applying a hash function.
 45. The apparatus of claim 44, wherein saidswitch is adapted to apply said hash function to a set of parametersassociated with the frames that will exit said switch.
 46. The apparatusof claim 40, wherein said switch is adapted to respectively assign aweight to at least some respective ones of said exit ports; wherein saidswitch is adapted to employ the weights to select an exit port for aframe of said flow to exit so as to balance said flow of frames exitingsaid switch so that said selected exit port is as good as or better thanalternative exit ports in terms of achieving an objective reflected bysaid weights.
 47. The apparatus of claim 46, wherein as good as orbetter in terms of achieving an objective function comprises obtaining alower value objective function.
 48. The apparatus of claim 46, whereinas good as or better in terms of achieving an objective functioncomprises obtaining a higher value objective function.
 49. The apparatusof claim 46, wherein said weights at least in part reflect consumedbandwidth for particular routes.
 50. The apparatus of claim 46, whereinat least some exit ports have multiple weights to reflect routes fromthe particular exit port to multiple respective destination ports;wherein said switch is adapted to employ said multiple weights to selectan exit port for a frame of said flow to exit so as to balance said flowof frames exiting said switch to select an exit port that is as good asor better than alternative exit ports in terms of achieving an objectivereflected by said weights.
 51. The apparatus of claim 50, wherein asgood as or better in terms of achieving an objective function comprisesobtaining a lower value objective function.
 52. The apparatus of claim50, wherein as good as or better in terms of achieving an objectivefunction comprises obtaining a higher value objective function.
 53. Theapparatus of claim 50, wherein said multiple weights at least in partreflect consumed bandwidth for particular routes.
 54. The apparatus ofclaim 46, wherein at least some of said links are to one or more otherswitches in a switch fabric.
 55. The apparatus of claim 41, wherein saidswitch is adapted to select at least one of said set of possible exitports based at least in part on a source tag and/or a destination tagadded to said frame after said frame enters said switch.
 56. Theapparatus of claim 55, wherein said switch is adapted to strip saidsource tag and/or said destination tag off said frame before said frameexits said switch.
 57. The apparatus of claim 40, wherein said switch isadapted to select at least one of said set of possible exit ports basedat least in part on a source tag and/or a destination tag added to eachof said frames after said frames enter said switch.
 58. The apparatus ofclaim 57, wherein said switch is adapted to strip said source tag and/orsaid destination tag off each of said frames before each of said framesexits said switch.
 59. A network comprising: a host; a physical storageunit; a first switch and a second switch communicatively coupled to forma switch fabric; said first switch and said second switch furthercommunicatively coupled to said host and said physical storage unit; atleast said first switch including a processor and memory, and having thecapability to balance a flow of frames exiting said switch; said firstswitch being adapted to select an exit port of said switch from a set ofpossible exit ports through which a frame from said flow of frames willexit so as to potentially reduce frame traffic congestion alongpotential routes that include said set of possible exit ports, said setof possible exit ports including at least some of the exit ports of atleast two trunk groups.
 60. The network of claim 59, wherein at leastone of said trunk groups comprises four exit ports.
 61. The network ofclaim 59, wherein at least one of said trunk groups comprises eight exitports.
 62. The network of claim 59, wherein said first switch is adaptedto select said exit port pseudo-randomly.
 63. The network of claim 62,wherein said first switch is adapted to select said exit portpseudo-randomly by applying a hash function.
 64. The network of claim63, wherein said first switch is adapted to apply said hash function toa set of parameters associated with the frames that will exit said firstswitch.
 65. The network of claim 59, wherein said first switch isadapted to respectively assign a weight to at least some respective onesof said exit ports; wherein said first switch is adapted to employ theweights to select an exit port for a frame of said flow to exit so as tobalance said flow of frames exiting said first switch so that saidselected exit port is as good as or better than alternative exit portsin terms of achieving an objective reflected by said weights.
 66. Thenetwork of claim 65, wherein as good as or better in terms of achievingan objective function comprises obtaining a lower value objectivefunction.
 67. The network of claim 65, wherein as good as or better interms of achieving an objective function comprises obtaining a highervalue objective function.
 68. The network of claim 65, wherein saidweights at least in part reflect consumed bandwidth for particularroutes.
 69. The network of claim 65, wherein at least some exit portshave multiple weights to reflect routes from the particular exit port tomultiple respective destination ports; wherein said first switch isadapted to employ said multiple weights to select an exit port for aframe of said flow to exit so as to balance said flow of frames exitingsaid first switch to select an exit port that is as good as or betterthan alternative exit ports in terms of achieving an objective reflectedby said weights.
 70. The network of claim 69, wherein as good as orbetter in terms of achieving an objective function comprises obtaining alower value objective function.
 71. The network of claim 69, wherein asgood as or better in terms of achieving an objective function comprisesobtaining a higher value objective function.
 72. The network of claim69, wherein said multiple weights at least in part reflect consumedbandwidth for particular routes.
 73. The network of claim 65, wherein atleast some of said links are to one or more other switches in saidswitch fabric other than said second switch.
 74. The network of claim59, wherein said first switch is adapted to select at least one of saidset of possible exit ports based at least in part on a source tag and/ora destination tag added to said frame after said frame enters said firstswitch.
 75. The network of claim 74, wherein said first switch isadapted to strip said source tag and/or said destination tag off saidframe before said frame exits said first switch.
 76. The network ofclaim 59, wherein said first switch is adapted to select at least one ofsaid set of possible exist ports based at least in part on a source tagand/or a destination tag added to each of said frames after said framesenter said first switch.
 77. The network of claim 76, wherein said firstswitch is adapted to strip said source tag and/or said destination tagoff each of said frames before each of said frames exits said firstswitch.
 78. An article comprising: a storage medium having storedthereon instructions that, when executed, result in performance of amethod of balancing a flow of frames exiting a switch that includes thefollowing: applying a process to select an exit port of said switch froma set of possible exit ports through which a frame from said flow offrames will exit so as to potentially reduce frame traffic congestionalong potential routes that include said set of possible exit ports,said set of possible exit ports including at least some of the exitports of at least two trunk groups.
 79. The article of claim 78, whereinat least one of said trunk groups comprises four exit ports.
 80. Thearticle of claim 78, wherein at least one of said trunk groups compriseseight exit ports.
 81. The article of claim 78, wherein saidinstructions, when executed, further result in: said process comprisinga pseudo-random process.
 82. The article of claim 81, wherein saidinstructions, when executed, further result in: said applying saidpseudo-random process comprises applying a hash function.
 83. Thearticle of claim 82, wherein said instructions, when executed, furtherresult in: said hash function being applied to a set of parametersassociated with the frames exiting said switch.
 84. The article of claim78, wherein said instructions, when executed, further result in: aweight being respectively assigned to at least some respective ones ofsaid exit ports; and further result in: applying a process to select anexit port for a frame of said flow to exit so as to balance said flow offrames exiting said switch comprising employing the weights to select anexit port that is as good as or better than alternative exit ports interms of achieving an objective reflected by said weights.
 85. Thearticle of claim 84, wherein said instructions, when executed, furtherresult in: said weights at least in part reflecting consumed bandwidthfor particular routes.
 86. The article of claim 84, wherein saidinstructions, when executed, further result in: at least some exit portshaving multiple weights reflecting routes from the particular exit portto multiple respective destination ports; and further result in:applying a process to select an exit port for a frame of said flow toexit so as to balance said flow of frames exiting said switch comprisingemploying said multiple weights to select an exit port that is as goodas or better than alternative exit ports in terms of achieving anobjective reflected by said weights.
 87. The article of claim 86,wherein said instructions, when executed, further resulting in: multipleweights at least in part reflecting consumed bandwidth for particularroutes.
 88. The article of claim 78, wherein said instructions, wherefurther executed, result in: at least one of said set of possible exitports being selected based at least in part on a source tag and/or adestination tag added to said frame after said frame enters said switch.89. The article of claim 88, wherein said instructions, when furtherexecuted, result in: said source tag and/or said destination tag beingstripped off said frame before said frame exits said switch.
 90. Thearticle of claim 78, wherein said instructions, when further executed,result in: at least one of said set of possible exist ports beingselected based at least in part on a source tag and/or a destination tagadded to each of said frames after said frames enter said switch. 91.The article of claim 90, wherein said instructions, when furtherexecuted, result in: said source tag and/or said destination tag beingstripped off each of said frames before each of said frames exits saidswitch.
 92. An article comprising: a storage medium having storedthereon instructions that, when executed, result of a method ofinitializing a switch to route a flow of frames comprising: initializingsaid switch to apply a process to select an exit port of said switchfrom a set of possible exit ports through which a frame from said flowof frames will exit so as to potentially reduce frame traffic congestionalong potential routes that include said set of possible exit ports,said set of possible exit ports including at least some of the exitports of at least two trunk groups.
 93. The article of claim 92, whereinsaid instructions, when executed, further result in: said switchingbeing initialized to apply a pseudo-random process.
 94. The article ofclaim 93, wherein said instructions, when executed, further result in:said switch being initialized to apply a hash function being to a set ofparameters associated with frames exiting said switch.
 95. The articleof claim 92, wherein said instructions, when executed, further resultin: said switch being initialized to assign a weight to at least somerespective ones of said exit ports; and said switch being initialized toapply a process to select an exit port for a frame of said flow to exitso as to balance said flow of frames exiting said switch comprisingemploying the weights to select an exit port that is as good as orbetter than alternative exit ports in terms of achieving an objectivereflected by said weights.